const express = require('express');
const router = express.Router();

// 获取所有镜像
router.get('/', async (req, res) => {
  try {
    const images = await req.docker.listImages();
    res.json(images);
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

// 拉取镜像
router.post('/pull', async (req, res) => {
  try {
    const { imageName } = req.body;
    if (!imageName) {
      return res.status(400).json({ error: '请提供镜像名称' });
    }

    const stream = await req.docker.pull(imageName);
    req.docker.modem.followProgress(stream, (err, output) => {
      if (err) {
        return res.status(500).json({ error: err.message });
      }
      res.json({ message: '镜像拉取完成', output });
    });
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

// 删除镜像
router.delete('/:id', async (req, res) => {
  try {
    const image = req.docker.getImage(req.params.id);
    await image.remove();
    res.json({ message: '镜像已删除' });
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

module.exports = router;
